<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="dialogflow_v2.html">Dialogflow API</a> . <a href="dialogflow_v2.projects.html">projects</a> . <a href="dialogflow_v2.projects.locations.html">locations</a> . <a href="dialogflow_v2.projects.locations.tools.html">tools</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, toolId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a tool.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a tool.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves a tool.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists tools.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates a tool.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, toolId=None, x__xgafv=None)</code>
  <pre>Creates a tool.

Args:
  parent: string, Required. The project/location to create tool for. Format: `projects//locations/` (required)
  body: object, The request body.
    The object takes the form of:

{ # Represents a tool.
  &quot;actionConfirmationRequirement&quot;: { # Optional. Confirmation requirement for the actions. Each key is an action name in the action_schemas. If an action&#x27;s confirmation requirement is unspecified (either the key is not present, or its value is CONFIRMATION_REQUIREMENT_UNSPECIFIED), the requirement is inferred from the action&#x27;s method_type - confirmation is not required if and only if method_type is GET.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;connectorSpec&quot;: { # A ConnectorTool enabling using Integration Connectors Connections as tools. # Integration connectors tool specification.
    &quot;actions&quot;: [ # Required. Actions for the tool to use.
      { # Configuration of a Connection operation for the tool to use.
        &quot;connectionActionId&quot;: &quot;A String&quot;, # ID of a Connection action for the tool to use.
        &quot;entityOperation&quot;: { # Entity CRUD operation specification. # Entity operation configuration for the tool to use.
          &quot;entityId&quot;: &quot;A String&quot;, # Required. ID of the entity.
          &quot;operation&quot;: &quot;A String&quot;, # Required. Operation to perform on the entity.
        },
        &quot;inputFields&quot;: [ # Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
          &quot;A String&quot;,
        ],
        &quot;outputFields&quot;: [ # Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
          &quot;A String&quot;,
        ],
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # Required. The full resource name of the referenced Integration Connectors Connection. Format: &#x27;projects/*/locations/*/connections/*&#x27;
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Creation time of this tool.
  &quot;description&quot;: &quot;A String&quot;, # Optional. A human readable description of the tool.
  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A human readable short name of the tool, to be shown on the UI.
  &quot;extensionSpec&quot;: { # An ExtensionTool is a way to use Vertex Extensions as a tool. # Vertex extension tool specification.
    &quot;name&quot;: &quot;A String&quot;, # Required. The full name of the referenced vertex extension. Format: `projects/{project}/locations/{location}/extensions/{extension}`
  },
  &quot;functionSpec&quot;: { # A Function tool describes the functions to be invoked on the client side. # Client side executed function specification.
    &quot;inputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function&#x27;s parameters as properties of the object.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
    &quot;methodType&quot;: &quot;A String&quot;, # Optional. The method type of the function. If not specified, the default value is GET.
    &quot;outputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function&#x27;s parameters as properties of the object.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
  },
  &quot;name&quot;: &quot;A String&quot;, # Output only. Identifier. The resource name of the tool. Format: `projects//locations//tools/`.
  &quot;openApiSpec&quot;: { # An OpenAPI tool is a way to provide the Tool specifications in the Open API schema format. # OpenAPI tool.
    &quot;authentication&quot;: { # Authentication information required for API calls # Optional. Authentication information required by the API.
      &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
        &quot;apiKey&quot;: &quot;A String&quot;, # Optional. The API key. If the `secret_version_for_api_key` field is set, this field will be ignored.
        &quot;keyName&quot;: &quot;A String&quot;, # Required. The parameter name or the header name of the API key. E.g., If the API request is &quot;https://example.com/act?X-Api-Key=&quot;, &quot;X-Api-Key&quot; would be the parameter name.
        &quot;requestLocation&quot;: &quot;A String&quot;, # Required. Key location in the request.
        &quot;secretVersionForApiKey&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the `api_key` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
      },
      &quot;bearerTokenConfig&quot;: { # Config for authentication using bearer token. # Config for bearer token auth.
        &quot;secretVersionForToken&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the `token` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
        &quot;token&quot;: &quot;A String&quot;, # Optional. The text token appended to the text `Bearer` to the request Authorization header. [Session parameters reference](https://cloud.google.com/dialogflow/cx/docs/concept/parameter#session-ref) can be used to pass the token dynamically, e.g. `$session.params.parameter-id`.
      },
      &quot;oauthConfig&quot;: { # Config for authentication with OAuth. # Config for OAuth.
        &quot;clientId&quot;: &quot;A String&quot;, # Required. The client ID from the OAuth provider.
        &quot;clientSecret&quot;: &quot;A String&quot;, # Optional. The client secret from the OAuth provider. If the `secret_version_for_client_secret` field is set, this field will be ignored.
        &quot;oauthGrantType&quot;: &quot;A String&quot;, # Required. OAuth grant types.
        &quot;scopes&quot;: [ # Optional. The OAuth scopes to grant.
          &quot;A String&quot;,
        ],
        &quot;secretVersionForClientSecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the `client_secret` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
        &quot;tokenEndpoint&quot;: &quot;A String&quot;, # Required. The token endpoint in the OAuth provider to exchange for an access token.
      },
      &quot;serviceAgentAuthConfig&quot;: { # Config for auth using [Dialogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). # Config for [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent) auth.
        &quot;serviceAgentAuth&quot;: &quot;A String&quot;, # Optional. Indicate the auth token type generated from the [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). The generated token is sent in the Authorization header.
      },
    },
    &quot;serviceDirectoryConfig&quot;: { # Configuration for tools using Service Directory. # Optional. Service Directory configuration.
      &quot;service&quot;: &quot;A String&quot;, # Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `LocationID` of the service directory must be the same as the location of the tool.
    },
    &quot;textSchema&quot;: &quot;A String&quot;, # Required. The OpenAPI schema specified as a text.
    &quot;tlsConfig&quot;: { # The TLS configuration. # Optional. TLS configuration for the HTTPS verification.
      &quot;caCerts&quot;: [ # Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
        { # The CA certificate.
          &quot;cert&quot;: &quot;A String&quot;, # Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google&#x27;s default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with &quot;subject alt name&quot;. For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile &lt;(printf &quot;\nsubjectAltName=&#x27;DNS:www.example.com&#x27;&quot;) ```
          &quot;displayName&quot;: &quot;A String&quot;, # Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
        },
      ],
    },
  },
  &quot;satisfiesPzi&quot;: True or False, # Output only. A read only boolean field reflecting Zone Isolation status of the tool. If the field is absent, it means the status is unknown.
  &quot;satisfiesPzs&quot;: True or False, # Output only. A read only boolean field reflecting Zone Separation status of the tool. If the field is absent, it means the status is unknown.
  &quot;toolKey&quot;: &quot;A String&quot;, # Required. A human readable short name of the tool, which should be unique within the project. It should only contain letters, numbers, and underscores, and it will be used by LLM to identify the tool.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Update time of this tool.
}

  toolId: string, Optional. The ID to use for the tool, which will become the final component of the tool&#x27;s resource name. The tool ID must be compliant with the regression formula `a-zA-Z*` with the characters length in range of [3,64]. If the field is not provide, an Id will be auto-generated. If the field is provided, the caller is responsible for 1. the uniqueness of the ID, otherwise the request will be rejected. 2. the consistency for whether to use custom ID or not under a project to better ensure uniqueness.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents a tool.
  &quot;actionConfirmationRequirement&quot;: { # Optional. Confirmation requirement for the actions. Each key is an action name in the action_schemas. If an action&#x27;s confirmation requirement is unspecified (either the key is not present, or its value is CONFIRMATION_REQUIREMENT_UNSPECIFIED), the requirement is inferred from the action&#x27;s method_type - confirmation is not required if and only if method_type is GET.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;connectorSpec&quot;: { # A ConnectorTool enabling using Integration Connectors Connections as tools. # Integration connectors tool specification.
    &quot;actions&quot;: [ # Required. Actions for the tool to use.
      { # Configuration of a Connection operation for the tool to use.
        &quot;connectionActionId&quot;: &quot;A String&quot;, # ID of a Connection action for the tool to use.
        &quot;entityOperation&quot;: { # Entity CRUD operation specification. # Entity operation configuration for the tool to use.
          &quot;entityId&quot;: &quot;A String&quot;, # Required. ID of the entity.
          &quot;operation&quot;: &quot;A String&quot;, # Required. Operation to perform on the entity.
        },
        &quot;inputFields&quot;: [ # Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
          &quot;A String&quot;,
        ],
        &quot;outputFields&quot;: [ # Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
          &quot;A String&quot;,
        ],
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # Required. The full resource name of the referenced Integration Connectors Connection. Format: &#x27;projects/*/locations/*/connections/*&#x27;
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Creation time of this tool.
  &quot;description&quot;: &quot;A String&quot;, # Optional. A human readable description of the tool.
  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A human readable short name of the tool, to be shown on the UI.
  &quot;extensionSpec&quot;: { # An ExtensionTool is a way to use Vertex Extensions as a tool. # Vertex extension tool specification.
    &quot;name&quot;: &quot;A String&quot;, # Required. The full name of the referenced vertex extension. Format: `projects/{project}/locations/{location}/extensions/{extension}`
  },
  &quot;functionSpec&quot;: { # A Function tool describes the functions to be invoked on the client side. # Client side executed function specification.
    &quot;inputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function&#x27;s parameters as properties of the object.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
    &quot;methodType&quot;: &quot;A String&quot;, # Optional. The method type of the function. If not specified, the default value is GET.
    &quot;outputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function&#x27;s parameters as properties of the object.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
  },
  &quot;name&quot;: &quot;A String&quot;, # Output only. Identifier. The resource name of the tool. Format: `projects//locations//tools/`.
  &quot;openApiSpec&quot;: { # An OpenAPI tool is a way to provide the Tool specifications in the Open API schema format. # OpenAPI tool.
    &quot;authentication&quot;: { # Authentication information required for API calls # Optional. Authentication information required by the API.
      &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
        &quot;apiKey&quot;: &quot;A String&quot;, # Optional. The API key. If the `secret_version_for_api_key` field is set, this field will be ignored.
        &quot;keyName&quot;: &quot;A String&quot;, # Required. The parameter name or the header name of the API key. E.g., If the API request is &quot;https://example.com/act?X-Api-Key=&quot;, &quot;X-Api-Key&quot; would be the parameter name.
        &quot;requestLocation&quot;: &quot;A String&quot;, # Required. Key location in the request.
        &quot;secretVersionForApiKey&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the `api_key` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
      },
      &quot;bearerTokenConfig&quot;: { # Config for authentication using bearer token. # Config for bearer token auth.
        &quot;secretVersionForToken&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the `token` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
        &quot;token&quot;: &quot;A String&quot;, # Optional. The text token appended to the text `Bearer` to the request Authorization header. [Session parameters reference](https://cloud.google.com/dialogflow/cx/docs/concept/parameter#session-ref) can be used to pass the token dynamically, e.g. `$session.params.parameter-id`.
      },
      &quot;oauthConfig&quot;: { # Config for authentication with OAuth. # Config for OAuth.
        &quot;clientId&quot;: &quot;A String&quot;, # Required. The client ID from the OAuth provider.
        &quot;clientSecret&quot;: &quot;A String&quot;, # Optional. The client secret from the OAuth provider. If the `secret_version_for_client_secret` field is set, this field will be ignored.
        &quot;oauthGrantType&quot;: &quot;A String&quot;, # Required. OAuth grant types.
        &quot;scopes&quot;: [ # Optional. The OAuth scopes to grant.
          &quot;A String&quot;,
        ],
        &quot;secretVersionForClientSecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the `client_secret` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
        &quot;tokenEndpoint&quot;: &quot;A String&quot;, # Required. The token endpoint in the OAuth provider to exchange for an access token.
      },
      &quot;serviceAgentAuthConfig&quot;: { # Config for auth using [Dialogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). # Config for [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent) auth.
        &quot;serviceAgentAuth&quot;: &quot;A String&quot;, # Optional. Indicate the auth token type generated from the [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). The generated token is sent in the Authorization header.
      },
    },
    &quot;serviceDirectoryConfig&quot;: { # Configuration for tools using Service Directory. # Optional. Service Directory configuration.
      &quot;service&quot;: &quot;A String&quot;, # Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `LocationID` of the service directory must be the same as the location of the tool.
    },
    &quot;textSchema&quot;: &quot;A String&quot;, # Required. The OpenAPI schema specified as a text.
    &quot;tlsConfig&quot;: { # The TLS configuration. # Optional. TLS configuration for the HTTPS verification.
      &quot;caCerts&quot;: [ # Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
        { # The CA certificate.
          &quot;cert&quot;: &quot;A String&quot;, # Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google&#x27;s default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with &quot;subject alt name&quot;. For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile &lt;(printf &quot;\nsubjectAltName=&#x27;DNS:www.example.com&#x27;&quot;) ```
          &quot;displayName&quot;: &quot;A String&quot;, # Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
        },
      ],
    },
  },
  &quot;satisfiesPzi&quot;: True or False, # Output only. A read only boolean field reflecting Zone Isolation status of the tool. If the field is absent, it means the status is unknown.
  &quot;satisfiesPzs&quot;: True or False, # Output only. A read only boolean field reflecting Zone Separation status of the tool. If the field is absent, it means the status is unknown.
  &quot;toolKey&quot;: &quot;A String&quot;, # Required. A human readable short name of the tool, which should be unique within the project. It should only contain letters, numbers, and underscores, and it will be used by LLM to identify the tool.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Update time of this tool.
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
  <pre>Deletes a tool.

Args:
  name: string, Required. The tool resource name to delete. Format: `projects//locations//tools/` (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Retrieves a tool.

Args:
  name: string, Required. The tool resource name to retrieve. Format: `projects//locations//tools/` (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents a tool.
  &quot;actionConfirmationRequirement&quot;: { # Optional. Confirmation requirement for the actions. Each key is an action name in the action_schemas. If an action&#x27;s confirmation requirement is unspecified (either the key is not present, or its value is CONFIRMATION_REQUIREMENT_UNSPECIFIED), the requirement is inferred from the action&#x27;s method_type - confirmation is not required if and only if method_type is GET.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;connectorSpec&quot;: { # A ConnectorTool enabling using Integration Connectors Connections as tools. # Integration connectors tool specification.
    &quot;actions&quot;: [ # Required. Actions for the tool to use.
      { # Configuration of a Connection operation for the tool to use.
        &quot;connectionActionId&quot;: &quot;A String&quot;, # ID of a Connection action for the tool to use.
        &quot;entityOperation&quot;: { # Entity CRUD operation specification. # Entity operation configuration for the tool to use.
          &quot;entityId&quot;: &quot;A String&quot;, # Required. ID of the entity.
          &quot;operation&quot;: &quot;A String&quot;, # Required. Operation to perform on the entity.
        },
        &quot;inputFields&quot;: [ # Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
          &quot;A String&quot;,
        ],
        &quot;outputFields&quot;: [ # Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
          &quot;A String&quot;,
        ],
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # Required. The full resource name of the referenced Integration Connectors Connection. Format: &#x27;projects/*/locations/*/connections/*&#x27;
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Creation time of this tool.
  &quot;description&quot;: &quot;A String&quot;, # Optional. A human readable description of the tool.
  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A human readable short name of the tool, to be shown on the UI.
  &quot;extensionSpec&quot;: { # An ExtensionTool is a way to use Vertex Extensions as a tool. # Vertex extension tool specification.
    &quot;name&quot;: &quot;A String&quot;, # Required. The full name of the referenced vertex extension. Format: `projects/{project}/locations/{location}/extensions/{extension}`
  },
  &quot;functionSpec&quot;: { # A Function tool describes the functions to be invoked on the client side. # Client side executed function specification.
    &quot;inputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function&#x27;s parameters as properties of the object.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
    &quot;methodType&quot;: &quot;A String&quot;, # Optional. The method type of the function. If not specified, the default value is GET.
    &quot;outputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function&#x27;s parameters as properties of the object.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
  },
  &quot;name&quot;: &quot;A String&quot;, # Output only. Identifier. The resource name of the tool. Format: `projects//locations//tools/`.
  &quot;openApiSpec&quot;: { # An OpenAPI tool is a way to provide the Tool specifications in the Open API schema format. # OpenAPI tool.
    &quot;authentication&quot;: { # Authentication information required for API calls # Optional. Authentication information required by the API.
      &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
        &quot;apiKey&quot;: &quot;A String&quot;, # Optional. The API key. If the `secret_version_for_api_key` field is set, this field will be ignored.
        &quot;keyName&quot;: &quot;A String&quot;, # Required. The parameter name or the header name of the API key. E.g., If the API request is &quot;https://example.com/act?X-Api-Key=&quot;, &quot;X-Api-Key&quot; would be the parameter name.
        &quot;requestLocation&quot;: &quot;A String&quot;, # Required. Key location in the request.
        &quot;secretVersionForApiKey&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the `api_key` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
      },
      &quot;bearerTokenConfig&quot;: { # Config for authentication using bearer token. # Config for bearer token auth.
        &quot;secretVersionForToken&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the `token` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
        &quot;token&quot;: &quot;A String&quot;, # Optional. The text token appended to the text `Bearer` to the request Authorization header. [Session parameters reference](https://cloud.google.com/dialogflow/cx/docs/concept/parameter#session-ref) can be used to pass the token dynamically, e.g. `$session.params.parameter-id`.
      },
      &quot;oauthConfig&quot;: { # Config for authentication with OAuth. # Config for OAuth.
        &quot;clientId&quot;: &quot;A String&quot;, # Required. The client ID from the OAuth provider.
        &quot;clientSecret&quot;: &quot;A String&quot;, # Optional. The client secret from the OAuth provider. If the `secret_version_for_client_secret` field is set, this field will be ignored.
        &quot;oauthGrantType&quot;: &quot;A String&quot;, # Required. OAuth grant types.
        &quot;scopes&quot;: [ # Optional. The OAuth scopes to grant.
          &quot;A String&quot;,
        ],
        &quot;secretVersionForClientSecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the `client_secret` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
        &quot;tokenEndpoint&quot;: &quot;A String&quot;, # Required. The token endpoint in the OAuth provider to exchange for an access token.
      },
      &quot;serviceAgentAuthConfig&quot;: { # Config for auth using [Dialogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). # Config for [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent) auth.
        &quot;serviceAgentAuth&quot;: &quot;A String&quot;, # Optional. Indicate the auth token type generated from the [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). The generated token is sent in the Authorization header.
      },
    },
    &quot;serviceDirectoryConfig&quot;: { # Configuration for tools using Service Directory. # Optional. Service Directory configuration.
      &quot;service&quot;: &quot;A String&quot;, # Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `LocationID` of the service directory must be the same as the location of the tool.
    },
    &quot;textSchema&quot;: &quot;A String&quot;, # Required. The OpenAPI schema specified as a text.
    &quot;tlsConfig&quot;: { # The TLS configuration. # Optional. TLS configuration for the HTTPS verification.
      &quot;caCerts&quot;: [ # Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
        { # The CA certificate.
          &quot;cert&quot;: &quot;A String&quot;, # Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google&#x27;s default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with &quot;subject alt name&quot;. For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile &lt;(printf &quot;\nsubjectAltName=&#x27;DNS:www.example.com&#x27;&quot;) ```
          &quot;displayName&quot;: &quot;A String&quot;, # Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
        },
      ],
    },
  },
  &quot;satisfiesPzi&quot;: True or False, # Output only. A read only boolean field reflecting Zone Isolation status of the tool. If the field is absent, it means the status is unknown.
  &quot;satisfiesPzs&quot;: True or False, # Output only. A read only boolean field reflecting Zone Separation status of the tool. If the field is absent, it means the status is unknown.
  &quot;toolKey&quot;: &quot;A String&quot;, # Required. A human readable short name of the tool, which should be unique within the project. It should only contain letters, numbers, and underscores, and it will be used by LLM to identify the tool.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Update time of this tool.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists tools.

Args:
  parent: string, Required. The project/location to list tools for. Format: `projects//locations/` (required)
  pageSize: integer, Optional. Maximum number of conversation models to return in a single page. Default to 10.
  pageToken: string, Optional. The next_page_token value returned from a previous list request.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response of ListTools.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results in the list.
  &quot;tools&quot;: [ # List of tools retrieved.
    { # Represents a tool.
      &quot;actionConfirmationRequirement&quot;: { # Optional. Confirmation requirement for the actions. Each key is an action name in the action_schemas. If an action&#x27;s confirmation requirement is unspecified (either the key is not present, or its value is CONFIRMATION_REQUIREMENT_UNSPECIFIED), the requirement is inferred from the action&#x27;s method_type - confirmation is not required if and only if method_type is GET.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;connectorSpec&quot;: { # A ConnectorTool enabling using Integration Connectors Connections as tools. # Integration connectors tool specification.
        &quot;actions&quot;: [ # Required. Actions for the tool to use.
          { # Configuration of a Connection operation for the tool to use.
            &quot;connectionActionId&quot;: &quot;A String&quot;, # ID of a Connection action for the tool to use.
            &quot;entityOperation&quot;: { # Entity CRUD operation specification. # Entity operation configuration for the tool to use.
              &quot;entityId&quot;: &quot;A String&quot;, # Required. ID of the entity.
              &quot;operation&quot;: &quot;A String&quot;, # Required. Operation to perform on the entity.
            },
            &quot;inputFields&quot;: [ # Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
              &quot;A String&quot;,
            ],
            &quot;outputFields&quot;: [ # Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
              &quot;A String&quot;,
            ],
          },
        ],
        &quot;name&quot;: &quot;A String&quot;, # Required. The full resource name of the referenced Integration Connectors Connection. Format: &#x27;projects/*/locations/*/connections/*&#x27;
      },
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. Creation time of this tool.
      &quot;description&quot;: &quot;A String&quot;, # Optional. A human readable description of the tool.
      &quot;displayName&quot;: &quot;A String&quot;, # Optional. A human readable short name of the tool, to be shown on the UI.
      &quot;extensionSpec&quot;: { # An ExtensionTool is a way to use Vertex Extensions as a tool. # Vertex extension tool specification.
        &quot;name&quot;: &quot;A String&quot;, # Required. The full name of the referenced vertex extension. Format: `projects/{project}/locations/{location}/extensions/{extension}`
      },
      &quot;functionSpec&quot;: { # A Function tool describes the functions to be invoked on the client side. # Client side executed function specification.
        &quot;inputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function&#x27;s parameters as properties of the object.
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
        },
        &quot;methodType&quot;: &quot;A String&quot;, # Optional. The method type of the function. If not specified, the default value is GET.
        &quot;outputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function&#x27;s parameters as properties of the object.
          &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
        },
      },
      &quot;name&quot;: &quot;A String&quot;, # Output only. Identifier. The resource name of the tool. Format: `projects//locations//tools/`.
      &quot;openApiSpec&quot;: { # An OpenAPI tool is a way to provide the Tool specifications in the Open API schema format. # OpenAPI tool.
        &quot;authentication&quot;: { # Authentication information required for API calls # Optional. Authentication information required by the API.
          &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
            &quot;apiKey&quot;: &quot;A String&quot;, # Optional. The API key. If the `secret_version_for_api_key` field is set, this field will be ignored.
            &quot;keyName&quot;: &quot;A String&quot;, # Required. The parameter name or the header name of the API key. E.g., If the API request is &quot;https://example.com/act?X-Api-Key=&quot;, &quot;X-Api-Key&quot; would be the parameter name.
            &quot;requestLocation&quot;: &quot;A String&quot;, # Required. Key location in the request.
            &quot;secretVersionForApiKey&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the `api_key` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
          },
          &quot;bearerTokenConfig&quot;: { # Config for authentication using bearer token. # Config for bearer token auth.
            &quot;secretVersionForToken&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the `token` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
            &quot;token&quot;: &quot;A String&quot;, # Optional. The text token appended to the text `Bearer` to the request Authorization header. [Session parameters reference](https://cloud.google.com/dialogflow/cx/docs/concept/parameter#session-ref) can be used to pass the token dynamically, e.g. `$session.params.parameter-id`.
          },
          &quot;oauthConfig&quot;: { # Config for authentication with OAuth. # Config for OAuth.
            &quot;clientId&quot;: &quot;A String&quot;, # Required. The client ID from the OAuth provider.
            &quot;clientSecret&quot;: &quot;A String&quot;, # Optional. The client secret from the OAuth provider. If the `secret_version_for_client_secret` field is set, this field will be ignored.
            &quot;oauthGrantType&quot;: &quot;A String&quot;, # Required. OAuth grant types.
            &quot;scopes&quot;: [ # Optional. The OAuth scopes to grant.
              &quot;A String&quot;,
            ],
            &quot;secretVersionForClientSecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the `client_secret` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
            &quot;tokenEndpoint&quot;: &quot;A String&quot;, # Required. The token endpoint in the OAuth provider to exchange for an access token.
          },
          &quot;serviceAgentAuthConfig&quot;: { # Config for auth using [Dialogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). # Config for [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent) auth.
            &quot;serviceAgentAuth&quot;: &quot;A String&quot;, # Optional. Indicate the auth token type generated from the [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). The generated token is sent in the Authorization header.
          },
        },
        &quot;serviceDirectoryConfig&quot;: { # Configuration for tools using Service Directory. # Optional. Service Directory configuration.
          &quot;service&quot;: &quot;A String&quot;, # Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `LocationID` of the service directory must be the same as the location of the tool.
        },
        &quot;textSchema&quot;: &quot;A String&quot;, # Required. The OpenAPI schema specified as a text.
        &quot;tlsConfig&quot;: { # The TLS configuration. # Optional. TLS configuration for the HTTPS verification.
          &quot;caCerts&quot;: [ # Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
            { # The CA certificate.
              &quot;cert&quot;: &quot;A String&quot;, # Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google&#x27;s default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with &quot;subject alt name&quot;. For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile &lt;(printf &quot;\nsubjectAltName=&#x27;DNS:www.example.com&#x27;&quot;) ```
              &quot;displayName&quot;: &quot;A String&quot;, # Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
            },
          ],
        },
      },
      &quot;satisfiesPzi&quot;: True or False, # Output only. A read only boolean field reflecting Zone Isolation status of the tool. If the field is absent, it means the status is unknown.
      &quot;satisfiesPzs&quot;: True or False, # Output only. A read only boolean field reflecting Zone Separation status of the tool. If the field is absent, it means the status is unknown.
      &quot;toolKey&quot;: &quot;A String&quot;, # Required. A human readable short name of the tool, which should be unique within the project. It should only contain letters, numbers, and underscores, and it will be used by LLM to identify the tool.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Update time of this tool.
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates a tool.

Args:
  name: string, Output only. Identifier. The resource name of the tool. Format: `projects//locations//tools/`. (required)
  body: object, The request body.
    The object takes the form of:

{ # Represents a tool.
  &quot;actionConfirmationRequirement&quot;: { # Optional. Confirmation requirement for the actions. Each key is an action name in the action_schemas. If an action&#x27;s confirmation requirement is unspecified (either the key is not present, or its value is CONFIRMATION_REQUIREMENT_UNSPECIFIED), the requirement is inferred from the action&#x27;s method_type - confirmation is not required if and only if method_type is GET.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;connectorSpec&quot;: { # A ConnectorTool enabling using Integration Connectors Connections as tools. # Integration connectors tool specification.
    &quot;actions&quot;: [ # Required. Actions for the tool to use.
      { # Configuration of a Connection operation for the tool to use.
        &quot;connectionActionId&quot;: &quot;A String&quot;, # ID of a Connection action for the tool to use.
        &quot;entityOperation&quot;: { # Entity CRUD operation specification. # Entity operation configuration for the tool to use.
          &quot;entityId&quot;: &quot;A String&quot;, # Required. ID of the entity.
          &quot;operation&quot;: &quot;A String&quot;, # Required. Operation to perform on the entity.
        },
        &quot;inputFields&quot;: [ # Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
          &quot;A String&quot;,
        ],
        &quot;outputFields&quot;: [ # Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
          &quot;A String&quot;,
        ],
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # Required. The full resource name of the referenced Integration Connectors Connection. Format: &#x27;projects/*/locations/*/connections/*&#x27;
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Creation time of this tool.
  &quot;description&quot;: &quot;A String&quot;, # Optional. A human readable description of the tool.
  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A human readable short name of the tool, to be shown on the UI.
  &quot;extensionSpec&quot;: { # An ExtensionTool is a way to use Vertex Extensions as a tool. # Vertex extension tool specification.
    &quot;name&quot;: &quot;A String&quot;, # Required. The full name of the referenced vertex extension. Format: `projects/{project}/locations/{location}/extensions/{extension}`
  },
  &quot;functionSpec&quot;: { # A Function tool describes the functions to be invoked on the client side. # Client side executed function specification.
    &quot;inputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function&#x27;s parameters as properties of the object.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
    &quot;methodType&quot;: &quot;A String&quot;, # Optional. The method type of the function. If not specified, the default value is GET.
    &quot;outputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function&#x27;s parameters as properties of the object.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
  },
  &quot;name&quot;: &quot;A String&quot;, # Output only. Identifier. The resource name of the tool. Format: `projects//locations//tools/`.
  &quot;openApiSpec&quot;: { # An OpenAPI tool is a way to provide the Tool specifications in the Open API schema format. # OpenAPI tool.
    &quot;authentication&quot;: { # Authentication information required for API calls # Optional. Authentication information required by the API.
      &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
        &quot;apiKey&quot;: &quot;A String&quot;, # Optional. The API key. If the `secret_version_for_api_key` field is set, this field will be ignored.
        &quot;keyName&quot;: &quot;A String&quot;, # Required. The parameter name or the header name of the API key. E.g., If the API request is &quot;https://example.com/act?X-Api-Key=&quot;, &quot;X-Api-Key&quot; would be the parameter name.
        &quot;requestLocation&quot;: &quot;A String&quot;, # Required. Key location in the request.
        &quot;secretVersionForApiKey&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the `api_key` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
      },
      &quot;bearerTokenConfig&quot;: { # Config for authentication using bearer token. # Config for bearer token auth.
        &quot;secretVersionForToken&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the `token` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
        &quot;token&quot;: &quot;A String&quot;, # Optional. The text token appended to the text `Bearer` to the request Authorization header. [Session parameters reference](https://cloud.google.com/dialogflow/cx/docs/concept/parameter#session-ref) can be used to pass the token dynamically, e.g. `$session.params.parameter-id`.
      },
      &quot;oauthConfig&quot;: { # Config for authentication with OAuth. # Config for OAuth.
        &quot;clientId&quot;: &quot;A String&quot;, # Required. The client ID from the OAuth provider.
        &quot;clientSecret&quot;: &quot;A String&quot;, # Optional. The client secret from the OAuth provider. If the `secret_version_for_client_secret` field is set, this field will be ignored.
        &quot;oauthGrantType&quot;: &quot;A String&quot;, # Required. OAuth grant types.
        &quot;scopes&quot;: [ # Optional. The OAuth scopes to grant.
          &quot;A String&quot;,
        ],
        &quot;secretVersionForClientSecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the `client_secret` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
        &quot;tokenEndpoint&quot;: &quot;A String&quot;, # Required. The token endpoint in the OAuth provider to exchange for an access token.
      },
      &quot;serviceAgentAuthConfig&quot;: { # Config for auth using [Dialogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). # Config for [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent) auth.
        &quot;serviceAgentAuth&quot;: &quot;A String&quot;, # Optional. Indicate the auth token type generated from the [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). The generated token is sent in the Authorization header.
      },
    },
    &quot;serviceDirectoryConfig&quot;: { # Configuration for tools using Service Directory. # Optional. Service Directory configuration.
      &quot;service&quot;: &quot;A String&quot;, # Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `LocationID` of the service directory must be the same as the location of the tool.
    },
    &quot;textSchema&quot;: &quot;A String&quot;, # Required. The OpenAPI schema specified as a text.
    &quot;tlsConfig&quot;: { # The TLS configuration. # Optional. TLS configuration for the HTTPS verification.
      &quot;caCerts&quot;: [ # Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
        { # The CA certificate.
          &quot;cert&quot;: &quot;A String&quot;, # Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google&#x27;s default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with &quot;subject alt name&quot;. For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile &lt;(printf &quot;\nsubjectAltName=&#x27;DNS:www.example.com&#x27;&quot;) ```
          &quot;displayName&quot;: &quot;A String&quot;, # Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
        },
      ],
    },
  },
  &quot;satisfiesPzi&quot;: True or False, # Output only. A read only boolean field reflecting Zone Isolation status of the tool. If the field is absent, it means the status is unknown.
  &quot;satisfiesPzs&quot;: True or False, # Output only. A read only boolean field reflecting Zone Separation status of the tool. If the field is absent, it means the status is unknown.
  &quot;toolKey&quot;: &quot;A String&quot;, # Required. A human readable short name of the tool, which should be unique within the project. It should only contain letters, numbers, and underscores, and it will be used by LLM to identify the tool.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Update time of this tool.
}

  updateMask: string, Optional. The list of fields to update.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents a tool.
  &quot;actionConfirmationRequirement&quot;: { # Optional. Confirmation requirement for the actions. Each key is an action name in the action_schemas. If an action&#x27;s confirmation requirement is unspecified (either the key is not present, or its value is CONFIRMATION_REQUIREMENT_UNSPECIFIED), the requirement is inferred from the action&#x27;s method_type - confirmation is not required if and only if method_type is GET.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;connectorSpec&quot;: { # A ConnectorTool enabling using Integration Connectors Connections as tools. # Integration connectors tool specification.
    &quot;actions&quot;: [ # Required. Actions for the tool to use.
      { # Configuration of a Connection operation for the tool to use.
        &quot;connectionActionId&quot;: &quot;A String&quot;, # ID of a Connection action for the tool to use.
        &quot;entityOperation&quot;: { # Entity CRUD operation specification. # Entity operation configuration for the tool to use.
          &quot;entityId&quot;: &quot;A String&quot;, # Required. ID of the entity.
          &quot;operation&quot;: &quot;A String&quot;, # Required. Operation to perform on the entity.
        },
        &quot;inputFields&quot;: [ # Optional. Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
          &quot;A String&quot;,
        ],
        &quot;outputFields&quot;: [ # Optional. Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
          &quot;A String&quot;,
        ],
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # Required. The full resource name of the referenced Integration Connectors Connection. Format: &#x27;projects/*/locations/*/connections/*&#x27;
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Creation time of this tool.
  &quot;description&quot;: &quot;A String&quot;, # Optional. A human readable description of the tool.
  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A human readable short name of the tool, to be shown on the UI.
  &quot;extensionSpec&quot;: { # An ExtensionTool is a way to use Vertex Extensions as a tool. # Vertex extension tool specification.
    &quot;name&quot;: &quot;A String&quot;, # Required. The full name of the referenced vertex extension. Format: `projects/{project}/locations/{location}/extensions/{extension}`
  },
  &quot;functionSpec&quot;: { # A Function tool describes the functions to be invoked on the client side. # Client side executed function specification.
    &quot;inputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function&#x27;s parameters as properties of the object.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
    &quot;methodType&quot;: &quot;A String&quot;, # Optional. The method type of the function. If not specified, the default value is GET.
    &quot;outputSchema&quot;: { # Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function&#x27;s parameters as properties of the object.
      &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
    },
  },
  &quot;name&quot;: &quot;A String&quot;, # Output only. Identifier. The resource name of the tool. Format: `projects//locations//tools/`.
  &quot;openApiSpec&quot;: { # An OpenAPI tool is a way to provide the Tool specifications in the Open API schema format. # OpenAPI tool.
    &quot;authentication&quot;: { # Authentication information required for API calls # Optional. Authentication information required by the API.
      &quot;apiKeyConfig&quot;: { # Config for authentication with API key. # Config for API key auth.
        &quot;apiKey&quot;: &quot;A String&quot;, # Optional. The API key. If the `secret_version_for_api_key` field is set, this field will be ignored.
        &quot;keyName&quot;: &quot;A String&quot;, # Required. The parameter name or the header name of the API key. E.g., If the API request is &quot;https://example.com/act?X-Api-Key=&quot;, &quot;X-Api-Key&quot; would be the parameter name.
        &quot;requestLocation&quot;: &quot;A String&quot;, # Required. Key location in the request.
        &quot;secretVersionForApiKey&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the `api_key` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
      },
      &quot;bearerTokenConfig&quot;: { # Config for authentication using bearer token. # Config for bearer token auth.
        &quot;secretVersionForToken&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the `token` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
        &quot;token&quot;: &quot;A String&quot;, # Optional. The text token appended to the text `Bearer` to the request Authorization header. [Session parameters reference](https://cloud.google.com/dialogflow/cx/docs/concept/parameter#session-ref) can be used to pass the token dynamically, e.g. `$session.params.parameter-id`.
      },
      &quot;oauthConfig&quot;: { # Config for authentication with OAuth. # Config for OAuth.
        &quot;clientId&quot;: &quot;A String&quot;, # Required. The client ID from the OAuth provider.
        &quot;clientSecret&quot;: &quot;A String&quot;, # Optional. The client secret from the OAuth provider. If the `secret_version_for_client_secret` field is set, this field will be ignored.
        &quot;oauthGrantType&quot;: &quot;A String&quot;, # Required. OAuth grant types.
        &quot;scopes&quot;: [ # Optional. The OAuth scopes to grant.
          &quot;A String&quot;,
        ],
        &quot;secretVersionForClientSecret&quot;: &quot;A String&quot;, # Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the `client_secret` field will be ignored. Format: `projects/{project}/secrets/{secret}/versions/{version}`
        &quot;tokenEndpoint&quot;: &quot;A String&quot;, # Required. The token endpoint in the OAuth provider to exchange for an access token.
      },
      &quot;serviceAgentAuthConfig&quot;: { # Config for auth using [Dialogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). # Config for [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent) auth.
        &quot;serviceAgentAuth&quot;: &quot;A String&quot;, # Optional. Indicate the auth token type generated from the [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). The generated token is sent in the Authorization header.
      },
    },
    &quot;serviceDirectoryConfig&quot;: { # Configuration for tools using Service Directory. # Optional. Service Directory configuration.
      &quot;service&quot;: &quot;A String&quot;, # Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `LocationID` of the service directory must be the same as the location of the tool.
    },
    &quot;textSchema&quot;: &quot;A String&quot;, # Required. The OpenAPI schema specified as a text.
    &quot;tlsConfig&quot;: { # The TLS configuration. # Optional. TLS configuration for the HTTPS verification.
      &quot;caCerts&quot;: [ # Required. Specifies a list of allowed custom CA certificates for HTTPS verification.
        { # The CA certificate.
          &quot;cert&quot;: &quot;A String&quot;, # Required. The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google&#x27;s default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with &quot;subject alt name&quot;. For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \ -out example.com.crt \ -extfile &lt;(printf &quot;\nsubjectAltName=&#x27;DNS:www.example.com&#x27;&quot;) ```
          &quot;displayName&quot;: &quot;A String&quot;, # Required. The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
        },
      ],
    },
  },
  &quot;satisfiesPzi&quot;: True or False, # Output only. A read only boolean field reflecting Zone Isolation status of the tool. If the field is absent, it means the status is unknown.
  &quot;satisfiesPzs&quot;: True or False, # Output only. A read only boolean field reflecting Zone Separation status of the tool. If the field is absent, it means the status is unknown.
  &quot;toolKey&quot;: &quot;A String&quot;, # Required. A human readable short name of the tool, which should be unique within the project. It should only contain letters, numbers, and underscores, and it will be used by LLM to identify the tool.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Update time of this tool.
}</pre>
</div>

</body></html>